#include <REGX52.H>
#include "LCD1602.H"
#include "DS18B20.H"
#include "Delay.h"

float T;

void main()
{
	//优化：上电之后先启动一次转换+延时，保证第一次转换不会读出默认值（+85）
	DS18B20_Convert();	
	Delay(1000);//看DS18B20手册的图8--精度最高时，最大转换时间是750ms
	LCD_Init();
	LCD_ShowString(1,1,"Temperature:");
	while(1)
	{
		DS18B20_Convert();	
		T=DS18B20_Read();
		if(T<0)
		{
			LCD_ShowChar(2,1,'-');
			T=-T;
		}
		else
		{
			LCD_ShowChar(2,1,'+');
		}
		LCD_ShowNum(2,2,T,3);
		LCD_ShowChar(2,5,'.');//小数点
		//小数无法在LCD1602中直接表示
		LCD_ShowNum(2,6,(unsigned long)(T*10000)%10000,4);//小数的表示方法
	}
}